Multi-processor computing systems are becoming more and more popular for use in applications that require large amounts of processing power. One type of multi-processor computing system is a symmetric multi-processing or “SMP” architecture. In an SMP architecture, multiple processors are used to perform tasks or processes in parallel. This allows, for example, the processors to execute different portions or “threads” of an application at the same time. Any available processor may be assigned to execute one or multiple threads. Also, additional processors may be added to improve the performance of the computer system and to execute additional threads.
In order to execute an application appropriately, the processors in conventional multi-processor computing systems need to be synchronized. A problem with conventional synchronization mechanisms is that the mechanisms are typically slow, which often reduces the performance of the multi-processor systems.